<!DOCTYPE html>
<html lang="en-us" dir="ltr">
    <head><meta charset='utf-8'>
<meta name='viewport' content='width=device-width, initial-scale=1'><meta name='description' content='sqlalchemy增删改查 Create an object c1 = Customer(first_name = &amp;lsquo;Toby&amp;rsquo;, last_name = &amp;lsquo;Miller&amp;rsquo;, username = &amp;rsquo;tmiller&amp;rsquo;, email = &amp;rsquo;tmiller@example.com&amp;rsquo;, address = &amp;lsquo;1662 Kinney Street&amp;rsquo;, town = &amp;lsquo;Wolfden&amp;rsquo; )
Add the object to the session session.add(c1)
Commit the session session.commit()
Query all customers customers = session.query(Customer).all()
Query customers by first name customers = session.query(Customer).filter_by(first_name=&amp;lsquo;Toby&amp;rsquo;).all()
Query customers by email (case-insensitive) customers = session.query(Customer).filter(Customer.email.ilike(&amp;rsquo;%example.com&amp;rsquo;)).all()
Update an object c1 = session.query(Customer).get(1) # get customer with id 1 c1.'><title>sql学习</title>

<link rel='canonical' href='http://meruro.cn/p/sql%E5%AD%A6%E4%B9%A0/'>

<link rel="stylesheet" href="/scss/style.min.5a8e892f6fa14515e9065eee1f5d2e05302606ec7f11750b2fb95198f9cdcbfd.css"><meta property='og:title' content='sql学习'>
<meta property='og:description' content='sqlalchemy增删改查 Create an object c1 = Customer(first_name = &amp;lsquo;Toby&amp;rsquo;, last_name = &amp;lsquo;Miller&amp;rsquo;, username = &amp;rsquo;tmiller&amp;rsquo;, email = &amp;rsquo;tmiller@example.com&amp;rsquo;, address = &amp;lsquo;1662 Kinney Street&amp;rsquo;, town = &amp;lsquo;Wolfden&amp;rsquo; )
Add the object to the session session.add(c1)
Commit the session session.commit()
Query all customers customers = session.query(Customer).all()
Query customers by first name customers = session.query(Customer).filter_by(first_name=&amp;lsquo;Toby&amp;rsquo;).all()
Query customers by email (case-insensitive) customers = session.query(Customer).filter(Customer.email.ilike(&amp;rsquo;%example.com&amp;rsquo;)).all()
Update an object c1 = session.query(Customer).get(1) # get customer with id 1 c1.'>
<meta property='og:url' content='http://meruro.cn/p/sql%E5%AD%A6%E4%B9%A0/'>
<meta property='og:site_name' content='梅鲁梅鲁梅鲁梅~'>
<meta property='og:type' content='article'><meta property='article:section' content='Post' /><meta property='article:tag' content='代码' /><meta property='article:published_time' content='2018-01-18T22:00:07&#43;00:00'/><meta property='article:modified_time' content='2018-01-18T22:00:07&#43;00:00'/>
<meta name="twitter:title" content="sql学习">
<meta name="twitter:description" content="sqlalchemy增删改查 Create an object c1 = Customer(first_name = &amp;lsquo;Toby&amp;rsquo;, last_name = &amp;lsquo;Miller&amp;rsquo;, username = &amp;rsquo;tmiller&amp;rsquo;, email = &amp;rsquo;tmiller@example.com&amp;rsquo;, address = &amp;lsquo;1662 Kinney Street&amp;rsquo;, town = &amp;lsquo;Wolfden&amp;rsquo; )
Add the object to the session session.add(c1)
Commit the session session.commit()
Query all customers customers = session.query(Customer).all()
Query customers by first name customers = session.query(Customer).filter_by(first_name=&amp;lsquo;Toby&amp;rsquo;).all()
Query customers by email (case-insensitive) customers = session.query(Customer).filter(Customer.email.ilike(&amp;rsquo;%example.com&amp;rsquo;)).all()
Update an object c1 = session.query(Customer).get(1) # get customer with id 1 c1.">
    </head>
    <body class="
    article-page
    ">
    <script>
        (function() {
            const colorSchemeKey = 'StackColorScheme';
            if(!localStorage.getItem(colorSchemeKey)){
                localStorage.setItem(colorSchemeKey, "auto");
            }
        })();
    </script><script>
    (function() {
        const colorSchemeKey = 'StackColorScheme';
        const colorSchemeItem = localStorage.getItem(colorSchemeKey);
        const supportDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches === true;

        if (colorSchemeItem == 'dark' || colorSchemeItem === 'auto' && supportDarkMode) {
            

            document.documentElement.dataset.scheme = 'dark';
        } else {
            document.documentElement.dataset.scheme = 'light';
        }
    })();
</script>
<div class="container main-container flex on-phone--column extended"><aside class="sidebar left-sidebar sticky ">
    <button class="hamburger hamburger--spin" type="button" id="toggle-menu" aria-label="Toggle Menu">
        <span class="hamburger-box">
            <span class="hamburger-inner"></span>
        </span>
    </button>

    <header>
        
            
            <figure class="site-avatar">
                <a href="/">
                
                    
                    
                    
                        
                        <img src="/img/ava_hu31add2dceb44736f969f74989490346b_19511_300x0_resize_q75_box.jpg" width="300"
                            height="300" class="site-logo" loading="lazy" alt="Avatar">
                    
                
                </a>
                
                    <span class="emoji">🍥</span>
                
            </figure>
            
        
        
        <div class="site-meta">
            <h1 class="site-name"><a href="/">梅鲁梅鲁梅鲁梅~</a></h1>
            <h2 class="site-description">朝闻道,夕死可矣.</h2>
        </div>
    </header><ol class="social-menu">
            
                <li>
                    <a 
                        href='https://github.com/CaiJimmy/hugo-theme-stack'
                        target="_blank"
                        title="GitHub"
                    >
                        
                        
                            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-github" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  <path d="M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5" />
</svg>



                        
                    </a>
                </li>
            
                <li>
                    <a 
                        href='https://twitter.com'
                        target="_blank"
                        title="Twitter"
                    >
                        
                        
                            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-brand-twitter" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  <path d="M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z" />
</svg>



                        
                    </a>
                </li>
            
        </ol><ol class="menu" id="main-menu">
        
        
        

        <li >
            <a href='/' >
                
                
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-home" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <polyline points="5 12 3 12 12 3 21 12 19 12" />
  <path d="M5 12v7a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-7" />
  <path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v6" />
</svg>



                
                <span>Home</span>
            </a>
        </li>
        
        

        <li >
            <a href='/about/' >
                
                
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-user" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="7" r="4" />
  <path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2" />
</svg>



                
                <span>About</span>
            </a>
        </li>
        
        

        <li >
            <a href='/archives/' >
                
                
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-archive" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <rect x="3" y="4" width="18" height="4" rx="2" />
  <path d="M5 8v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2 -2v-10" />
  <line x1="10" y1="12" x2="14" y2="12" />
</svg>



                
                <span>Archives</span>
            </a>
        </li>
        
        

        <li >
            <a href='/search/' >
                
                
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-search" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="10" cy="10" r="7" />
  <line x1="21" y1="21" x2="15" y2="15" />
</svg>



                
                <span>Search</span>
            </a>
        </li>
        
        

        <li >
            <a href='/links/' >
                
                
                
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5" />
  <path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5" />
</svg>



                
                <span>Links</span>
            </a>
        </li>
        

        <div class="menu-bottom-section">
                <li id="i18n-switch">  
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-language" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z" fill="none"/>
  <path d="M4 5h7" />
  <path d="M9 3v2c0 4.418 -2.239 8 -5 8" />
  <path d="M5 9c-.003 2.144 2.952 3.908 6.7 4" />
  <path d="M12 20l4 -9l4 9" />
  <path d="M19.1 18h-6.2" />
</svg>



                    <select name="language" onchange="window.location.href = this.selectedOptions[0].value">
                        
                            <option value="http://meruro.cn/" selected>English</option>
                        
                            <option value="http://meruro.cn/zh-cn/" >中文</option>
                        
                            <option value="http://meruro.cn/ar/" >عربي</option>
                        
                    </select>
                </li>
            
            
            
                <li id="dark-mode-toggle">
                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-toggle-left" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="8" cy="12" r="2" />
  <rect x="2" y="6" width="20" height="12" rx="6" />
</svg>



                    <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-toggle-right" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="16" cy="12" r="2" />
  <rect x="2" y="6" width="20" height="12" rx="6" />
</svg>



                    <span>Dark Mode</span>
                </li>
            
        </div>
    </ol>
</aside>
<main class="main full-width">
    <article class="main-article">
    <header class="article-header">

    <div class="article-details">
    

    <div class="article-title-wrapper">
        <h2 class="article-title">
            <a href="/p/sql%E5%AD%A6%E4%B9%A0/">sql学习</a>
        </h2>
    
        
    </div>

    
    <footer class="article-time">
        
            <div>
                <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-calendar-time" width="56" height="56" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <path d="M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4" />
  <circle cx="18" cy="18" r="4" />
  <path d="M15 3v4" />
  <path d="M7 3v4" />
  <path d="M3 11h16" />
  <path d="M18 16.496v1.504l1 1" />
</svg>
                <time class="article-time--published">Jan 18, 2018</time>
            </div>
        

        
            <div>
                <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-clock" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="12" r="9" />
  <polyline points="12 7 12 12 15 15" />
</svg>



                <time class="article-time--reading">
                    3 minute read
                </time>
            </div>
        
    </footer>
    

    
</div>
</header>

    <section class="article-content">
    
    
    <h1 id="sqlalchemy增删改查">sqlalchemy增删改查</h1>
<h2 id="create-an-object">Create an object</h2>
<p>c1 = Customer(first_name = &lsquo;Toby&rsquo;, last_name = &lsquo;Miller&rsquo;, username = &rsquo;tmiller&rsquo;, email = &rsquo;<a class="link" href="mailto:tmiller@example.com" >tmiller@example.com</a>&rsquo;, address = &lsquo;1662 Kinney Street&rsquo;, town = &lsquo;Wolfden&rsquo; )</p>
<h2 id="add-the-object-to-the-session">Add the object to the session</h2>
<p>session.add(c1)</p>
<h2 id="commit-the-session">Commit the session</h2>
<p>session.commit()</p>
<h1 id="query-all-customers">Query all customers</h1>
<p>customers = session.query(Customer).all()</p>
<h1 id="query-customers-by-first-name">Query customers by first name</h1>
<p>customers = session.query(Customer).filter_by(first_name=&lsquo;Toby&rsquo;).all()</p>
<h1 id="query-customers-by-email-case-insensitive">Query customers by email (case-insensitive)</h1>
<p>customers = session.query(Customer).filter(Customer.email.ilike(&rsquo;%example.com&rsquo;)).all()</p>
<h1 id="update-an-object">Update an object</h1>
<p>c1 = session.query(Customer).get(1) # get customer with id 1
c1.username = &rsquo;tobym&rsquo; # change username attribute
session.commit() # commit changes</p>
<h1 id="update-multiple-records">Update multiple records</h1>
<p>session.query(Customer).filter(Customer.town==&lsquo;Beckinsdale&rsquo;).update({Customer.town: &lsquo;Beckinsdale-upon-Sea&rsquo;})
session.commit()</p>
<h1 id="delete-an-object">Delete an object</h1>
<p>c1 = session.query(Customer).get(1) # get customer with id 1
session.delete(c1) # mark for deletion
session.commit() # commit changes</p>
<h1 id="delete-multiple-records">Delete multiple records</h1>
<p>session.query(Customer).filter(Customer.town==&lsquo;Beckinsdale&rsquo;).delete()
session.commit()</p>
<h2 id="删除数据">删除数据</h2>
<p>清空数据时不用delete from tbname
而是用truncate table tbname</p>
<h2 id="常用sql语句">常用sql语句</h2>
<h3 id="项目">项目</h3>
<p>内存文件数据库,,原一隔持事务需,BS架构表业数,DBMS就是类似mysql的软件,数据库系统就是人员,管理软件和(硬件,数据库文件)的组合, 优点:<strong>安全完整并发性,逻物独享冗余低</strong>,DML创删改,插删更新DDL
设计:现实概念逻物型,概念表示ER型,实体矩形属性圆
三要素:数的节操完整性
结构改变改模内,模式改变改外模
行元列域名属性,分量最小码主键,关系模式是表头
数据库的要求:  <strong>并障安完致</strong>, 并发,故障,安全,完整,一致
系统:数据库,DBMS,应用系统,数据库管理员
数据模型三要素:数据结构,数据操作,完整性约束
三级模式两级映像:概念内外三模式,中间各有一映像,保障逻物独立性
D定M操C权限
实体属性分三种,复合多值和派生,复合属性可以继续划分,多值属性指实体可以在该属性上取多个值,派生属性是从其他属性计算得来的
联系分一多分四种
主码唯一识别当前元组,外码对应主码
实体完整性:主码非空唯一,参照完整性:外码所在元组等于主码所在元组,用户定义完整性:
数据库完整性:库中数据的 <strong>正确一致相容性</strong>
破坏参照完整性: 参照插入被参删(插入主码中不存在的元组),修改参外被参主. 措施:改主插参要拒绝,
级联置空置缺省
约束分类:类型属性关系库,实体关系参照库
声明一个域:阈值类型和缺省,范围集合和格式
断言是约束,生命触发器
安全性控制方法:用户标识鉴别,存取控制,视图审计和加密
设计步骤:需求,概念,逻辑,物理,实施
数据抽象三方法:共同特性和行为的对象抽象为一个概念,定义某一类型的组成成分,定义对象集之间的子集联系
ER图之间的冲突:属性命名结构
外模式优化:使用别名,不同用户不同视图,简化用户对系统使用,处理计算属性
数据实施工作:DDL建立数据库加载调试试运行. DBA工作:转储恢复,安全完整性,性能分析与改进,库的重组与重构
代数优化:选择投影先运算,尽量避免笛卡积
事务:原一隔持不分割
数据库并发:提高吞资少等待,丢脏不重是问题,
笛卡尔积: 对于A中的每一个元素，都有对于在B中的所有元素做连接运算 。
选择: 水平分割,选取某些行σdept_name=”Physics”(instructor)
投影: 按域分割,选取某些列 select ID, name, salary from instructor 可以表示为：ΠID, name, salary (instructor )
重命名: 符号为小写ρ;ρx(E)表示将关系E重命名为x, ρx(a1,a2&hellip;)(E)则将E对应的属性也重命名为a1,a2&hellip;
连接: 把两个表中的行按着给定的条件拼接而形成的新表。等值连接:自然连接:特殊的等值连接，要求两个关系必须有公共域，结果把重复的属性列去掉
执行顺序：自然连接–&gt;选取–&gt;投影</p>
<p>关系表元组行属性列,码key主键,域:具有相同数据类型的值的集合,分量:元组中的一个属性值(最小单元),关系模式:对关系的描述(表头),</p>
<p><img src="https://img-blog.csdnimg.cn/20200319171553523.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDgyNDUwMA==,size_16,color_FFFFFF,t_70"
	
	
	
	loading="lazy"
	
		alt="在这里插入图片描述"
	
	
></p>
<h2 id="数据库原理">数据库原理</h2>
<h3 id="信息与数据">信息与数据</h3>
<ul>
<li>
<p>信息：现实世界事物的存在方式和运动状态反应的综合</p>
</li>
<li>
<ul>
<li>源于物质和能量：信息不能脱离物质而存在，信息的传递和获取都需要消耗能量</li>
<li>可以被感知：不同信息源感知形式不同，如感官，仪表盘</li>
<li>可存储、加工、传递、再生：如大脑的存储就叫记忆</li>
</ul>
</li>
<li>
<p>数据：纪录信息的可识别符号，信息的表现形式</p>
</li>
<li>
<ul>
<li>同一信息可以有不同的表现形式，信息本身不随数据形式的变化而变化</li>
</ul>
</li>
<li>
<p>数据与信息的联系</p>
</li>
<li>
<ul>
<li>
<p>表示与被表示</p>
</li>
<li>
<ul>
<li>
<p>信息＝数据＋处理</p>
<p><strong>田霖</strong>杨小灿方全沈华伟<strong>曹娟</strong>张天柱卜东波杜子东<strong>唐胜</strong>何清**李淳梵 ** ,<strong>李栋</strong> , <strong>唐宏伟</strong>庄福振武成岗</p>
<p>关镇徐常胜董未名</p>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="数据库演变">数据库演变</h3>
<ul>
<li>
<p>人工管理</p>
</li>
<li>
<ul>
<li>
<p>数据不保存</p>
</li>
<li>
<ul>
<li>数据 + 程序 =&gt; 内存 =&gt; 处理 =&gt; 完成 =&gt; 释放</li>
</ul>
</li>
<li>
<p>无专门管理软件</p>
</li>
<li>
<ul>
<li>逻辑结构和物理结构均由应用程序决定</li>
</ul>
</li>
<li>
<p>数据不共享</p>
</li>
<li>
<ul>
<li>数据面向程序单独定义</li>
</ul>
</li>
<li>
<p>数据不独立</p>
</li>
<li>
<ul>
<li>程序与数据强依赖</li>
</ul>
</li>
</ul>
</li>
<li>
<p>文件系统</p>
</li>
<li>
<ul>
<li>
<p>数据以文件形式保存</p>
</li>
<li>
<p>由文件系统管理数据</p>
</li>
<li>
<ul>
<li>
<p>数据组织成具有一定结构文件</p>
</li>
<li>
<ul>
<li>共享性差、冗余度大、易造成数据不一致</li>
</ul>
</li>
</ul>
</li>
<li>
<p>设备独立性</p>
</li>
<li>
<ul>
<li>
<p>程序只需要考虑文件路径，不需考虑物理结构</p>
</li>
<li>
<ul>
<li>独立性仍然较差</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>数据库系统  <strong>安全完整并发性,逻物独享冗余低</strong></p>
</li>
<li>
<ul>
<li>
<p>数据结构化</p>
</li>
<li>
<p>共享性高，冗余度底</p>
</li>
<li>
<ul>
<li>一组数据可为多个应用和用户共同使用</li>
</ul>
</li>
<li>
<p>独立性高</p>
</li>
<li>
<ul>
<li>
<p>物理独立性</p>
</li>
<li>
<ul>
<li>存储结构、存取方式、存储设备</li>
</ul>
</li>
<li>
<p>逻辑独立性</p>
</li>
<li>
<ul>
<li>数据定义、数据类型、数据关系</li>
</ul>
</li>
</ul>
</li>
<li>
<p>数据控制</p>
</li>
<li>
<ul>
<li>
<p>安全性</p>
</li>
<li>
<ul>
<li>口令验证</li>
<li>权限管理</li>
</ul>
</li>
<li>
<p>完整性</p>
</li>
<li>
<ul>
<li>
<p>正确性</p>
</li>
<li>
<ul>
<li>数据合法性如 data type</li>
</ul>
</li>
<li>
<p>有效性</p>
</li>
<li>
<ul>
<li>数据范围如月份</li>
</ul>
</li>
<li>
<p>相容性</p>
</li>
<li>
<ul>
<li>同事实多表示如性别不能同时男女</li>
</ul>
</li>
</ul>
</li>
<li>
<p>并发</p>
</li>
<li>
<ul>
<li>多应用多用户同时使用</li>
</ul>
</li>
<li>
<p>数据恢复</p>
</li>
<li>
<ul>
<li>错误、故障恢复</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="数据库系统">数据库系统</h3>
<ul>
<li>
<p>用户</p>
</li>
<li>
<ul>
<li>
<p>终端用户</p>
</li>
<li>
<p>应用程序员</p>
</li>
<li>
<p>数据库管理员（DBA）</p>
</li>
<li>
<ul>
<li>
<p>设计、建立、管理、维护数据库</p>
</li>
<li>
<ul>
<li>数据库设计</li>
<li>存取结构、存取策略</li>
<li>帮助终端用户和应用程序员</li>
<li>定义安全性和完整性</li>
<li>监督数据库使用和运行</li>
<li>改进数据库</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>软件系统</p>
</li>
<li>
<ul>
<li>
<p>应用系统</p>
</li>
<li>
<p>应用开发工具</p>
</li>
<li>
<p>数据库管理系统（DBMS）</p>
</li>
<li>
<p>操作系统</p>
</li>
<li>
<ul>
<li>管理计算机资源</li>
</ul>
</li>
</ul>
</li>
<li>
<p>数据库</p>
</li>
</ul>
<h3 id="数据库系统模式结构">数据库系统模式结构</h3>
<ul>
<li>模式：数据库中全体数据的逻辑结构和特征描述</li>
<li>
<ul>
<li>
<p>实例：模式的具体值</p>
</li>
<li>
<ul>
<li>
<p>例</p>
</li>
<li>
<ul>
<li>模式：员工基本情况数据库</li>
<li>实例：A公司、B公司员工基本情况</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h4 id="三级模式的关系">三级模式的关系</h4>
<p>（1）模式是数据库的中心与关键。
（2）内模式依赖于模式，独立于外模式和存储设备。
（3）外模式面向具体的应用，独立于内模式和存储设备。
（4）应用程序依赖于外模式，独立于模式和内模式。</p>
<ul>
<li>
<ul>
<li>
<p>外模式（用户级）</p>
</li>
<li>
<ul>
<li>
<p>一个数据库有多个外模式 #<strong>用户定义数据操作数据</strong>, DML创删改,插删更新DDL</p>
</li>
<li>
<ul>
<li>保证数据安全性</li>
<li>DBMS提供子模式定义语言</li>
</ul>
</li>
</ul>
</li>
<li>
<p>模式（概念级）(概念模式) #</p>
</li>
<li>
<ul>
<li>
<p>一个数据库只有一个模式</p>
</li>
<li>
<ul>
<li>定义逻辑结构</li>
<li>定义数据关系</li>
</ul>
</li>
</ul>
</li>
<li>
<p>内模式（物理级）#存储模式</p>
</li>
<li>
<ul>
<li>
<p>一个数据只有一个内模式</p>
</li>
<li>
<ul>
<li>记录存储模式</li>
<li>DBMS提供内模式定义语言</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>数据库二级映像</li>
<li>
<ul>
<li>
<p>外模式／模式映像</p>
</li>
<li>
<ul>
<li>确定局部逻辑结构与全局逻辑结构的关系</li>
</ul>
</li>
<li>
<p>模式／内模式映像</p>
</li>
<li>
<ul>
<li>确定全局逻辑结构与存储结构之间的对应关系</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="数据库管理系统dbms">数据库管理系统（DBMS）</h3>
<ul>
<li>
<p>DBMS组成 #就是mysql这种软件</p>
</li>
<li>
<ul>
<li>
<p>语言编译处理程序</p>
</li>
<li>
<ul>
<li>
<p>数据定义语言（DDL）编译程序</p>
</li>
<li>
<ul>
<li>源模式编译为数据库结构信息描述</li>
</ul>
</li>
<li>
<p>数据操纵语言（DML）编译程序</p>
</li>
<li>
<ul>
<li>转换成可执行的增删改查</li>
</ul>
</li>
</ul>
</li>
<li>
<p>系统运行控制程序</p>
</li>
<li>
<ul>
<li>
<p>系统总控制程序</p>
</li>
<li>
<ul>
<li>控制协调各程序的活动</li>
</ul>
</li>
<li>
<p>安全性控制程序</p>
</li>
<li>
<ul>
<li>权限管理</li>
</ul>
</li>
<li>
<p>完整性控制程序</p>
</li>
<li>
<ul>
<li>完整性约束</li>
</ul>
</li>
<li>
<p>并发控制程序</p>
</li>
<li>
<ul>
<li>协调多应用、多用户</li>
</ul>
</li>
<li>
<p>数据存取更新</p>
</li>
<li>
<ul>
<li>对数据的增删改查操作</li>
</ul>
</li>
</ul>
</li>
<li>
<p>系统建立、维护程序</p>
</li>
<li>
<ul>
<li>
<p>装配程序</p>
</li>
<li>
<ul>
<li>初始数据库的数据装入</li>
</ul>
</li>
<li>
<p>重组程序</p>
</li>
<li>
<ul>
<li>数据库性能降低时重组</li>
</ul>
</li>
<li>
<p>系统恢复程序</p>
</li>
<li>
<ul>
<li>恢复到以前的某个正确状态</li>
</ul>
</li>
</ul>
</li>
<li>
<p>数据字典</p>
</li>
<li>
<ul>
<li>描述数据库中有关信息的数据目录，如数据库三级模式、数据类型、用户名、用户权限等有关数据库系统的信息</li>
</ul>
</li>
</ul>
</li>
<li>
<p>DBMS数据存取</p>
</li>
<li>
<ul>
<li>用户使用特定操作语言向DBMS发出存取请求</li>
<li>DBMS将请求转换成代码指令</li>
<li>DBMS检查三级模式和二级映像</li>
<li>DBMS对数据库执行存取操作</li>
<li>DBMS接收存取操作结果</li>
<li>DBMS数据结果进行必要的处理（如格式转换）</li>
<li>DBMS将处理结果返回给用户</li>
</ul>
</li>
</ul>
<h3 id="数据模型">数据模型</h3>
<ul>
<li>
<p>三个世界</p>
</li>
<li>
<ul>
<li>
<p>现实世界</p>
</li>
<li>
<ul>
<li>
<p>客观描述</p>
</li>
<li>
<ul>
<li>事物总体、事物个体、特征、事物联系</li>
</ul>
</li>
</ul>
</li>
<li>
<p>信息世界</p>
</li>
<li>
<ul>
<li>
<p>现实世界在人脑中的反映</p>
</li>
<li>
<ul>
<li>
<p>实体（一辆汽车）</p>
</li>
<li>
<ul>
<li>实体型（汽车）</li>
<li>实体集（所有汽车）</li>
</ul>
</li>
<li>
<p>属性</p>
</li>
<li>
<ul>
<li>实体具有的某一特性</li>
</ul>
</li>
<li>
<p>键</p>
</li>
<li>
<ul>
<li>能唯一标识实体的属性</li>
</ul>
</li>
<li>
<p>域</p>
</li>
<li>
<ul>
<li>属性取值范围</li>
</ul>
</li>
<li>
<p>联系</p>
</li>
<li>
<ul>
<li>1对1</li>
<li>1对n</li>
<li>n对n</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>计算机世界</p>
</li>
<li>
<ul>
<li>
<p>字段</p>
</li>
<li>
<ul>
<li>标记实体属性的命名单位</li>
</ul>
</li>
<li>
<p>记录</p>
</li>
<li>
<ul>
<li>字段的有序集合</li>
</ul>
</li>
<li>
<p>文件</p>
</li>
<li>
<ul>
<li>同一类记录的集合</li>
</ul>
</li>
<li>
<p>关键字</p>
</li>
<li>
<ul>
<li>唯一标识文件中记录的字段</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="实体联系模型概念模式">实体联系模型（概念模式）</h3>
<ul>
<li>
<p>基本组成</p>
</li>
<li>
<ul>
<li>实体型（矩形框）</li>
<li>属性（椭圆框）</li>
<li>联系（菱形框）</li>
</ul>
</li>
<li>
<p>联系类型</p>
</li>
<li>
<ul>
<li>两个实体间的联系</li>
<li>三个及三个以上实体间的联系</li>
<li>同一实体集内部各实体间的联系</li>
</ul>
</li>
</ul>
<h3 id="数据模型-1">数据模型</h3>
<ul>
<li>
<p>层次模型（树）</p>
</li>
<li>
<ul>
<li>
<p>特点</p>
</li>
<li>
<ul>
<li>每棵树有且仅有一个节点没有双亲，此为根节点</li>
<li>根以外的其他节点有且仅有一个双亲节点</li>
<li>父子节点之间的联系是1对n关系</li>
</ul>
</li>
<li>
<p>数据操纵与完整型约束</p>
</li>
<li>
<ul>
<li>主要操纵：增删改查</li>
<li>插入子节点必须要有双亲节点</li>
<li>删除双亲节点必须同时删除子节点</li>
<li>修改时必须修改所有相应记录</li>
</ul>
</li>
<li>
<p>优缺点</p>
</li>
<li>
<ul>
<li>
<p>优点</p>
</li>
<li>
<ul>
<li>结构简单、层次分明</li>
<li>联系简单，查询效率高</li>
<li>良好的数据完整性支持</li>
</ul>
</li>
<li>
<p>缺点</p>
</li>
<li>
<ul>
<li>不能表示三个及以上实体型联系</li>
<li>对插入、删除限制太强</li>
<li>查询子节点必须通过双亲节点</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>网状模型</p>
</li>
<li>
<ul>
<li>
<p>特点</p>
</li>
<li>
<ul>
<li>有一个以上的节点没有双亲节点</li>
<li>允许节点有多个双亲节点</li>
<li>允许两个节点之间有多种联系</li>
</ul>
</li>
<li>
<p>数据操纵与完整性约束</p>
</li>
<li>
<ul>
<li>主要操纵：增删改查</li>
<li>允许插入未确定双亲节点的子节点</li>
<li>允许只删除双亲节点</li>
<li>修改时只需要更新指定记录</li>
</ul>
</li>
<li>
<p>优缺点</p>
</li>
<li>
<ul>
<li>
<p>优点</p>
</li>
<li>
<ul>
<li>更为直接的描述复杂客观世界</li>
<li>良好的性能和存储效率</li>
</ul>
</li>
<li>
<p>缺点</p>
</li>
<li>
<ul>
<li>数据结构复杂</li>
<li>DDL、DML语言复杂</li>
<li>加重编码应用程序负担（记录间的联系本质是通过存取路径实现，应用程序需要指定存取路径）</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>关系模型</p>
</li>
<li>
<ul>
<li>
<p>特点</p>
</li>
<li>
<ul>
<li>由表名、表头、表体组成的规范二维表</li>
<li>每个二维表表示关系</li>
<li>基本要素：关系、元组、属性、域、分量、关键字、关系模式、关系实例</li>
</ul>
</li>
<li>
<p>数据操纵与完整性约束</p>
</li>
<li>
<ul>
<li>主要操纵：增删改查</li>
<li>实体完整性</li>
<li>参照完整性</li>
<li>用户自定义完整性</li>
</ul>
</li>
<li>
<p>优缺点</p>
</li>
<li>
<ul>
<li>
<p>优点</p>
</li>
<li>
<ul>
<li>严格的数据支持</li>
<li>结构简单清晰</li>
<li>存取路径透明</li>
</ul>
</li>
<li>
<p>缺点</p>
</li>
<li>
<ul>
<li>查询效率底</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3 id="关系数据库">关系数据库</h3>
<ul>
<li>
<p>关系模型结构和定义</p>
</li>
<li>
<ul>
<li>
<p>关系形式化定义</p>
</li>
<li>
<ul>
<li>
<p>域（值域）：一组具有相同数据类型的值的集合</p>
</li>
<li>
<p>笛卡尔积：D1xD2x&hellip;Dn={(d1,d2,&hellip;,dn)|属于Di}</p>
</li>
<li>
<ul>
<li>笛卡尔积即为一个二维表、表的框架由域构成，行为一个元组，每列来自同一个域</li>
</ul>
</li>
<li>
<p>关系：笛卡尔积的任一子集称为定义在域上的n元关系</p>
</li>
</ul>
</li>
<li>
<p>关系的性质</p>
</li>
<li>
<ul>
<li>
<p>列是同质的</p>
</li>
<li>
<ul>
<li>每列需要来自同一个域，同一数据类型</li>
</ul>
</li>
<li>
<p>不同列可以来自同一域</p>
</li>
<li>
<p>列的顺序可以任意交换</p>
</li>
<li>
<p>关系中的元组顺序可任意</p>
</li>
<li>
<p>关系中不允许存在相同的元组</p>
</li>
<li>
<p>关系中每一个分量必须是原子的（不可再分）</p>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>关系的键与完整性</p>
</li>
<li>
<ul>
<li>
<p>键</p>
</li>
<li>
<ul>
<li>
<p>候选键：能唯一标识关系中元组的一个属性或属性集</p>
</li>
<li>
<ul>
<li>
<p>特点</p>
</li>
<li>
<ul>
<li>唯一性</li>
<li>最小性</li>
</ul>
</li>
</ul>
</li>
<li>
<p>主关系键（主键）：候选键中用以增删改查的操作变量</p>
</li>
<li>
<p>主属性：包含在主关系键中的各个属性</p>
</li>
<li>
<p>非码属性：不包含在任何候选键中的属性</p>
</li>
<li>
<p>外部关系键：X是A中的一个（组）属性，非A表主键、是B表主键，则X是A的外部关系键</p>
</li>
</ul>
</li>
<li>
<p>关系完整性</p>
</li>
<li>
<ul>
<li>
<p>实体完整性</p>
</li>
<li>
<ul>
<li>主关系键的值不能为空或部分为空</li>
</ul>
</li>
<li>
<p>参照完整性</p>
</li>
<li>
<ul>
<li>外部关系键要么为某一个值、要么为空</li>
</ul>
</li>
<li>
<p>用户自定义完整性</p>
</li>
<li>
<ul>
<li>必须满足针对某一具体关系的约束语义要求（如月份）</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>
<p>关系代数</p>
</li>
<li>
<ul>
<li>
<p>运算对象</p>
</li>
<li>
<p>运算结果</p>
</li>
<li>
<p>运算符</p>
</li>
<li>
<ul>
<li>
<p>集合运算</p>
</li>
<li>
<ul>
<li>并、差、交、笛卡尔积</li>
</ul>
</li>
<li>
<p>专门的关系运算符</p>
</li>
<li>
<ul>
<li>选取、投影、连接、自然连接、除</li>
</ul>
</li>
<li>
<p>算术比较运算符</p>
</li>
<li>
<ul>
<li>大于、大于等于、小于、小于等于、等于、不等于</li>
</ul>
</li>
<li>
<p>逻辑运算符</p>
</li>
<li>
<ul>
<li>与、或、非</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>

</section>


    <footer class="article-footer">
    
    <section class="article-tags">
        
            <a href="/tags/%E4%BB%A3%E7%A0%81/">代码</a>
        
    </section>


    
    <section class="article-copyright">
        <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-copyright" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <circle cx="12" cy="12" r="9" />
  <path d="M14.5 9a3.5 4 0 1 0 0 6" />
</svg>



        <span>Licensed under CC BY-NC-SA 4.0</span>
    </section>
    </footer>


    
</article>

    

    

     
    
        
    

    <footer class="site-footer">
    <section class="copyright">
        &copy; 
        
            2020 - 
        
        2023 梅鲁梅鲁梅鲁梅~
    </section>
    
    <section class="powerby">
        Built with <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> <br />
        Theme <b><a href="https://github.com/CaiJimmy/hugo-theme-stack" target="_blank" rel="noopener" data-version="3.13.0">Stack</a></b> designed by <a href="https://jimmycai.com" target="_blank" rel="noopener">Jimmy</a>
    </section>
</footer>


    
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">

    
    <div class="pswp__bg"></div>

    
    <div class="pswp__scroll-wrap">

        
        <div class="pswp__container">
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
            <div class="pswp__item"></div>
        </div>

        
        <div class="pswp__ui pswp__ui--hidden">

            <div class="pswp__top-bar">

                

                <div class="pswp__counter"></div>

                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>

                <button class="pswp__button pswp__button--share" title="Share"></button>

                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>

                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>

                
                
                <div class="pswp__preloader">
                    <div class="pswp__preloader__icn">
                        <div class="pswp__preloader__cut">
                            <div class="pswp__preloader__donut"></div>
                        </div>
                    </div>
                </div>
            </div>

            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
                <div class="pswp__share-tooltip"></div>
            </div>

            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)">
            </button>

            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)">
            </button>

            <div class="pswp__caption">
                <div class="pswp__caption__center"></div>
            </div>

        </div>

    </div>

</div><script 
                src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.js"integrity="sha256-ePwmChbbvXbsO02lbM3HoHbSHTHFAeChekF1xKJdleo="crossorigin="anonymous"
                defer
                >
            </script><script 
                src="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe-ui-default.min.js"integrity="sha256-UKkzOn/w1mBxRmLLGrSeyB4e1xbrp4xylgAWb3M42pU="crossorigin="anonymous"
                defer
                >
            </script><link 
                rel="stylesheet" 
                href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/default-skin/default-skin.min.css"crossorigin="anonymous"
            ><link 
                rel="stylesheet" 
                href="https://cdn.jsdelivr.net/npm/photoswipe@4.1.3/dist/photoswipe.min.css"crossorigin="anonymous"
            >

            </main>
    <aside class="sidebar right-sidebar sticky">
        
            
                
    <section class="widget archives">
        <div class="widget-icon">
            <svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-hash" width="24" height="24" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round">
  <path stroke="none" d="M0 0h24v24H0z"/>
  <line x1="5" y1="9" x2="19" y2="9" />
  <line x1="5" y1="15" x2="19" y2="15" />
  <line x1="11" y1="4" x2="7" y2="20" />
  <line x1="17" y1="4" x2="13" y2="20" />
</svg>



        </div>
        <h2 class="widget-title section-title">Table of contents</h2>
        
        <div class="widget--toc">
            <nav id="TableOfContents">
  <ol>
    <li><a href="#create-an-object">Create an object</a></li>
    <li><a href="#add-the-object-to-the-session">Add the object to the session</a></li>
    <li><a href="#commit-the-session">Commit the session</a></li>
  </ol>

  <ol>
    <li><a href="#删除数据">删除数据</a></li>
    <li><a href="#常用sql语句">常用sql语句</a>
      <ol>
        <li><a href="#项目">项目</a></li>
      </ol>
    </li>
    <li><a href="#数据库原理">数据库原理</a>
      <ol>
        <li><a href="#信息与数据">信息与数据</a></li>
        <li><a href="#数据库演变">数据库演变</a></li>
        <li><a href="#数据库系统">数据库系统</a></li>
        <li><a href="#数据库系统模式结构">数据库系统模式结构</a>
          <ol>
            <li><a href="#三级模式的关系">三级模式的关系</a></li>
          </ol>
        </li>
        <li><a href="#数据库管理系统dbms">数据库管理系统（DBMS）</a></li>
        <li><a href="#数据模型">数据模型</a></li>
        <li><a href="#实体联系模型概念模式">实体联系模型（概念模式）</a></li>
        <li><a href="#数据模型-1">数据模型</a></li>
        <li><a href="#关系数据库">关系数据库</a></li>
      </ol>
    </li>
  </ol>
</nav>
        </div>
    </section>

            
        
    </aside>


        </div>
        <script 
                src="https://cdn.jsdelivr.net/npm/node-vibrant@3.1.6/dist/vibrant.min.js"integrity="sha256-awcR2jno4kI5X0zL8ex0vi2z&#43;KMkF24hUW8WePSA9HM="crossorigin="anonymous"
                
                >
            </script><script type="text/javascript" src="/ts/main.js" defer></script>
<script>
    (function () {
        const customFont = document.createElement('link');
        customFont.href = "https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&display=swap";

        customFont.type = "text/css";
        customFont.rel = "stylesheet";

        document.head.appendChild(customFont);
    }());
</script>

    </body>
</html>
